package top.meeting.room.module.system.services;

import top.meeting.room.common.base.IBaseService;
import top.meeting.room.module.system.form.RegisterForm;
import top.meeting.room.module.system.form.LoginForm;
import top.meeting.room.module.system.form.SetRoleForm;
import top.meeting.room.module.system.model.User;
import top.meeting.room.module.system.query.UserQuery;

import java.util.List;

/**
 * 我有故事，你有酒么？
 * JKhaled created by yunqisong@foxmail.com 2017/7/22
 * FOR : 用户服务接口
 */
public interface IUserService extends IBaseService<User, UserQuery, LoginForm> {
    /**
     * 注册方法
     *
     * @param registerForm
     * @return
     */
    User register(RegisterForm registerForm);

    /**
     * 验证用户名或者邮箱手机号码是否存在
     *
     * @param text
     * @return
     */
    Boolean isExist(String text);

    /**
     * 修改用户密码
     *
     * @param newPassword
     * @param id
     * @return
     */
    User modifyPassword(String newPassword, Long id);

    /**
     * 批量重置用户密码
     *
     * @param ids
     * @return
     */
    Boolean resetPassword(String ids);

    /**
     * 通过id恢复
     *
     * @param ids
     */
    void recoveryByIds(String ids);

    /**
     * 设置角色
     *
     * @param roleForm
     */
    void setRole(SetRoleForm roleForm);

    /**
     * 通过角色名查找用户
     *
     * @param roleName
     * @return
     */
    List<User> findByRoleName(String roleName);

    /**
     * 查找有审批权的用户
     *
     * @return
     */
    List<User> findSp();

    /**
     * 设置审批权
     *
     * @return
     */
    void setSp(Long id);
}
